[SEA-NodeJS] Rename SEA → kernel across the driver (useSEA → useKernel)#428
Conversation
|
Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase ( |
|
Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase ( |
|
Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase ( |
|
Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase ( |
The kernel backend is not restricted to the SEA wire protocol, so the
"SEA" branding on the driver-layer code is misleading. Rename the
driver-side surface to "kernel":
- `lib/sea/Sea*.ts` → `lib/kernel/Kernel*.ts` (backend, session/operation
backends, auth, native loader, results provider, error mapping, etc.)
- `native/sea/` → `native/kernel/`; `tests/{unit,e2e}/sea/` → `.../kernel/`
- public option `useSEA` → `useKernel`; internal `use_sea` → `use_kernel`;
telemetry backend tag `'sea'` → `'kernel'`
- config/CI: package.json build:native + prepack paths, .gitignore,
.npmignore, .prettierignore, .gitattributes, kernel-e2e.yml
Genuine SEA *protocol* references are intentionally preserved (SEA wire
protocol, SEA `row_limit`/`wait_timeout`, "Statement Execution API (SEA)"),
since SEA remains one transport the kernel can sit on.
Bump KERNEL_REV to the current kernel main (b676275); the regenerated
native/kernel/index.{d.ts,js} are byte-identical to the committed
contract, so the kernel-e2e drift-guard stays green.
Verified: build-surface tsc clean, eslint clean, prettier clean, kernel
unit suite green, and a live warehouse run through `useKernel:true`
(SELECT, named-param binding, CREATE/INSERT/SELECT/DROP, async+cancel,
error mapping) all pass.
Co-authored-by: Isaac
Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
a40b3db to
1969e28
Compare
…ssion Ports the session-level query-tags wiring onto the post-#428 lib/kernel path (originally lib/sea/SeaBackend, before the SEA→kernel rename). openSession serializes request.queryTags into the reserved QUERY_TAGS session conf, which the kernel allowlists (SESSION_CONF_ALLOWLIST) and forwards onto the SEA CreateSession session_confs — mirroring ThriftBackend.openSession. queryTags takes precedence over an explicit configuration.QUERY_TAGS. Verified end-to-end against a live warehouse: the tag lands in system.query.history.query_tags. Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
Why
The kernel backend can sit on top of any wire protocol (today SEA / Statement Execution API, later others), so the driver shouldn't brand its path "SEA". This renames the driver-layer surface to
kernel, matching the Python connector'suse_kernel=True, while preserving genuine references to the SEA wire protocol the kernel speaks.What changed (mechanical, no behavior change)
useSEA→useKernel.lib/sea/→lib/kernel/;Sea*classes/types →Kernel*;seaCancel/seaClose/seaFinished/seaServerInfoValue→kernel*;SEA_DBMS_*/SEA_SERVER_NAME→KERNEL_*.tests/unit/sea/→tests/unit/kernel/,tests/e2e/sea/→tests/e2e/kernel/(+Sea*-named test files).native/sea/→native/kernel/—build:native,prepack, loader require path,.gitignore,.prettierignore,.npmignore,.gitattributes, andkernel-e2e.ymlupdated.index.d.ts/index.jsregenerated from a fresh build, so the kernel-e2e drift-guard still matches.'sea'telemetry backend literal (nothing emits it).Deliberately preserved
The genuine protocol references — "Statement Execution API (SEA)", "SEA REST protocol", "SEA wire", SEA
CreateSessionwire fields — and thenative-packagingregression-guard for the historical garbled@databricks/sea-native-*npm prefix (renaming it would make the guard vacuous).On the kernel repo
No kernel-repo changes needed. The kernel's own
seanaming (SeaRestTransport, etc.) is the genuine SEA wire-protocol implementation — preserved by design. This rename is entirely the Node driver's path branding.Base
Built on current main (includes directResults #426). Supersedes #415, which was stacked on the now-closed old SEA stack.
Verification
tscclean;npm run lint(eslintlib/**tests/e2e/**) clean;prettier --checkclean.git grep useSEA→ 0; no stalelib/sea/native/sea/tests/*/seapath refs.useKernel: truevalidated end-to-end against a live warehouse — SELECT, directResults CREATE+count, and the binding loading fromnative/kernel/.This pull request and its description were written by Isaac.